// import com.alibaba.druid.sql.ast.statement.SQLTableElement;
// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
#pragma once
#include "../OracleSQLObjectImpl.h"
#include "../../../../ast/statement/SQLTableElement.h"

class OracleSupplementalIdKey : virtual public OracleSQLObjectImpl, virtual public SQLTableElement
{
public:
  BOOL_ptr all;
  BOOL_ptr primaryKey;
  BOOL_ptr unique;
  BOOL_ptr uniqueIndex;
  BOOL_ptr foreignKey;

  SHAREDOBJECT(OracleSupplementalIdKey);
  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  BOOL_ptr isAll();

  void setAll(BOOL_ptr all);

  BOOL_ptr isPrimaryKey();

  void setPrimaryKey(BOOL_ptr primaryKey);

  BOOL_ptr isUnique();

  void setUnique(BOOL_ptr unique);

  BOOL_ptr isForeignKey();

  void setForeignKey(BOOL_ptr foreignKey);

  BOOL_ptr isUniqueIndex();

  void setUniqueIndex(BOOL_ptr uniqueIndex);

  SQLObject_ptr clone();
};
